맨위로가기

웨어 레벨링

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

웨어 레벨링은 EEPROM 및 플래시 메모리 미디어의 제한된 삭제 주기를 해결하기 위해 데이터를 분산하는 기술이다. 플래시 메모리의 경우, 삭제 및 다시 쓰기가 매체 전체에 고르게 분산되도록 데이터를 정렬하여 특정 블록의 과도한 사용을 방지한다.

웨어 레벨링에는 동적, 정적, 글로벌의 세 가지 주요 유형이 있으며, 각각 논리 블록 주소를 물리적 메모리 주소에 매핑하는 방식을 사용한다. 동적 웨어 레벨링은 데이터가 다시 쓰여질 때마다 새 위치에 기록하고, 정적 웨어 레벨링은 변경되지 않는 정적 블록을 주기적으로 이동시킨다. 글로벌 웨어 레벨링은 플래시 메모리의 모든 칩에서 모든 블록을 단일 풀로 관리한다.

웨어 레벨링은 SD 카드나 USB 플래시 드라이브와 같은 하드웨어에서 마이크로컨트롤러를 통해 구현되거나, JFFS2, YAFFS, UDF와 같은 특수 파일 시스템에서 소프트웨어로 구현될 수 있다. 하드웨어 방식은 주소 변환 테이블을 사용하여 논리 주소를 물리 주소로 매핑하고, 소프트웨어 방식은 로그 구조 파일 시스템을 활용하여 쓰기를 분산시킨다.

더 읽어볼만한 페이지

  • 솔리드 스테이트 컴퓨터 저장 장치 - USB 플래시 드라이브
    USB 플래시 드라이브는 USB 인터페이스를 통해 컴퓨터와 연결되는 휴대용 저장 장치로, 플래시 메모리 발명 후 상용화되어 플로피 디스크나 CD를 대체하며 데이터 저장, 운영 체제 부팅 등 다양한 용도로 사용되지만 위조 제품, 보안 위협, 제한적인 쓰기 횟수 등의 문제점도 있다.
  • 솔리드 스테이트 컴퓨터 저장 장치 - 솔리드 스테이트 드라이브
    솔리드 스테이트 드라이브(SSD)는 반도체를 이용해 정보를 저장하는 장치로, 빠른 속도, 낮은 전력 소비, 적은 소음, 뛰어난 내구성을 특징으로 하며, 낸드 플래시 메모리를 기반으로 다양한 인터페이스를 통해 컴퓨터에 연결된다.
  • 비휘발성 메모리 - EPROM
    EPROM은 자외선을 사용하여 내용을 지울 수 있는 읽기 전용 메모리이며, MOSFET의 부유 게이트를 사용하여 데이터를 저장하고, 펌웨어 업데이트가 용이하여 소량 생산에 사용되었으나 EEPROM과 플래시 메모리에 의해 대체되었다.
  • 비휘발성 메모리 - 플래시 메모리
    플래시 메모리는 전기적으로 데이터의 쓰기 및 삭제가 가능한 비휘발성 메모리 기술로, 마스오카 후지오 박사가 발명하여 카메라 플래시와 유사한 소거 방식으로 인해 명명되었으며, NOR형과 NAND형으로 나뉘어 각기 다른 분야에 적용된다.
  • 컴퓨터 메모리 - 플래시 메모리
    플래시 메모리는 전기적으로 데이터의 쓰기 및 삭제가 가능한 비휘발성 메모리 기술로, 마스오카 후지오 박사가 발명하여 카메라 플래시와 유사한 소거 방식으로 인해 명명되었으며, NOR형과 NAND형으로 나뉘어 각기 다른 분야에 적용된다.
  • 컴퓨터 메모리 - 메모리 계층 구조
    메모리 계층 구조는 CPU 데이터 접근 속도 향상을 위해 레지스터, 캐시, RAM, 보조 기억 장치 등으로 구성되며, 속도, 용량, 비용이 다른 계층들을 통해 효율적인 메모리 관리를 가능하게 한다.
웨어 레벨링
기본 정보
종류기술
목적플래시 메모리의 수명 연장
대상SSD, USB 플래시 드라이브
설명
웨어 레벨링플래시 메모리 등에서 특정 저장 위치에 대한 쓰기 및 삭제 집중을 완화하여 메모리 수명을 연장하는 기술
작동 방식모든 메모리 블록에 균등하게 쓰기 및 삭제 작업 분산
장점플래시 메모리의 수명 연장, 성능 향상
종류
정적 웨어 레벨링자주 사용하지 않는 데이터 블록과 자주 사용하는 데이터 블록의 스왑을 통해 쓰기/삭제 횟수 균등화
동적 웨어 레벨링사용 빈도가 높은 블록에 우선적으로 데이터를 기록하여 전체적인 수명 연장
활용
사용 분야SSD
USB 플래시 드라이브
기타 플래시 메모리 기반 저장 장치
참고 사항
중요성플래시 메모리의 특성상 필수적인 기술
관련 기술오버 프로비저닝

2. 이론

EEPROM플래시 메모리 미디어는 개별적으로 지울 수 있는 세그먼트를 가지며, 각 세그먼트는 신뢰성이 떨어지기 전까지 제한된 횟수의 삭제 주기를 거칠 수 있다. 일반적으로 약 3,000/5,000회[5][6]이지만, 많은 플래시 장치는 플래시 메모리 컨트롤러에서 세그먼트 전체의 데이터 이동 및 마모를 추적하는 데 사용할 수 있는 100,000회 이상의 주기를 가진 블록을 가지고 있다. CD-RW 및 DVD-RW와 같은 지울 수 있는 광학 미디어는 최대 1,000회(DVD-RAM 미디어의 경우 100,000회)의 삭제 주기를 가진다.

웨어 레벨링은 삭제 및 다시 쓰기가 매체 전체에 고르게 분산되도록 데이터를 정렬하여 이러한 제한을 해결하려고 시도한다. 이러한 방식으로 높은 쓰기 주기 집중으로 인해 단일 삭제 블록이 조기에 실패하지 않는다.[7] 플래시 메모리에서 칩의 단일 블록은 다른 블록보다 긴 수명을 갖도록 설계되어 메모리 컨트롤러가 손상 가능성을 줄이면서 작동 데이터를 저장할 수 있다.[3][8]

FAT, UFS, HFS/HFS+, EXTNTFS와 같은 기존 파일 시스템은 원래 자기 디스크용으로 설계되었으므로, 디렉터리와 같은 데이터 구조를 동일한 영역에 반복적으로 다시 쓰는 경향이 있다. 이러한 시스템을 플래시 메모리 미디어에 사용하면 문제가 된다. 일부 파일 시스템이 마지막 액세스 시간을 추적하여 파일 메타데이터가 지속적으로 제자리에 다시 작성될 수 있다는 사실로 인해 문제가 더욱 악화된다.[9]

컴퓨터의 기억 매체 중에는, 보존 데이터를 다시 쓸 때마다 조금씩 열화(劣化)되어 가는 것이 몇 가지 있다. 전원을 꺼도 내용이 보존되는 매체에서 그것은 현저하며, CD-RW, DVD-RW, 플래시 메모리 등 다시 쓰기 가능 횟수가 수백에서 수천 회 정도인 것이 최근에는 많이 사용되고 있다.

일반적으로 이러한 기억 매체의 다시 쓰기 제한 횟수는 매체 전체가 아닌, 기억 소자 1개에 대한 횟수이다. 따라서 다시 쓰기가 하나의 소자에 집중되지 않고, 1개의 매체 내 각 소자에 가능한 한 균등하게 분산되도록 제어할 수 있다면, 매체 전체로서의 다시 쓰기 제한 횟수는 비약적으로 향상될 것이다.

데이터의 다시 쓰기를 매체 내 기억 소자에 가능한 한 균등하게 분산시키는 기술을 웨어 레벨링(Wear leveling)이라고 부른다. 웨어 레벨링 기술을 사용하면 매체로서의 다시 쓰기 제한 횟수는 각 소자의 다시 쓰기 제한 횟수의 수백에서 수천 배가 된다.

2022년, 시라큐스 대학교와 플로리다 국제 대학교의 연구자는 "웨어 레벨링은 내구성의 한계가 수백 회 정도로 되어 있는 현황에서는 유용성보다 해가 더 크다"라는 연구 결과를 발표했다.[14] 이 논문에서는 기존의 웨어 레벨링 알고리즘을 여러 종류 조사하여, 어느 경우에서든 쓰기 증폭률이 큰 것을 보여주고 있다. 그리고 기존의 고정 용량 블록 장치로서 SSD를 추상화하는 것이 아니라, 가변 용량 추상화 방식을 채용함으로써 2.94배 수명을 연장할 수 있다고 한다. 추상화 기술로는 F2FS나 NVMe에서 새롭게 정의된 Zoned Namespace(ZNS) 등이 예시로 제시되고 있다.

3. 유형

EEPROM플래시 메모리 미디어는 개별적으로 지울 수 있는 세그먼트를 가지며, 각 세그먼트는 제한된 횟수의 삭제 주기를 견딜 수 있다. 웨어 레벨링은 데이터를 매체 전체에 고르게 분산시켜 이러한 제한을 해결한다. 플래시 메모리 칩의 특정 블록은 다른 블록보다 긴 수명을 갖도록 설계되어, 메모리 컨트롤러가 손상 가능성을 줄이면서 작동 데이터를 저장할 수 있게 한다.[2]

웨어 레벨링은 크게 세 가지 유형으로 나뉜다.


  • 동적 웨어 레벨링
  • 정적 웨어 레벨링
  • 글로벌 웨어 레벨링

3. 1. 동적 웨어 레벨링 (Dynamic Wear Leveling)

동적 웨어 레벨링은 운영 체제(OS)의 논리 블록 주소(LBA)를 실제 플래시 메모리에 연결하기 위해 맵을 사용한다. 데이터가 다시 쓰여질 때마다 맵이 업데이트되어 원래의 물리적 블록은 "유효하지 않은" 데이터로 표시되고 새 블록이 해당 맵 항목에 연결된다. 즉, 데이터 블록이 플래시 메모리에 다시 쓰여질 때마다 새 위치에 기록된다. 그러나 대체 데이터를 전혀 받지 않는 플래시 메모리 블록은 추가적인 마모를 겪지 않는다. 이러한 특성 때문에 동적 데이터가 재활용된다는 의미에서 동적 웨어 레벨링이라는 이름이 붙여졌다. 동적 웨어 레벨링을 적용한 장치는 웨어 레벨링이 없는 장치보다 오래 지속될 수 있지만, 장치가 더 이상 작동하지 않더라도 여전히 활성 상태로 남아 있는 블록이 존재한다.[2][3]

3. 2. 정적 웨어 레벨링 (Static Wear Leveling)

정적 웨어 레벨링은 논리 블록 주소(LBA)를 물리적 메모리 주소에 연결하기 위해 맵을 사용한다. 정적 웨어 레벨링은 동적 웨어 레벨링과 동일하게 작동하지만, 변경되지 않는 정적 블록도 주기적으로 이동시켜 사용 빈도가 낮은 셀을 다른 데이터에서 사용할 수 있도록 한다. 이러한 회전 효과를 통해 SSD는 대부분의 블록이 수명이 다할 때까지 계속 작동할 수 있다.

3. 3. 글로벌 웨어 레벨링 (Global Wear Leveling)

여러 칩으로 구성된 플래시 메모리에서 모든 칩의 모든 블록을 단일 풀로 관리하여, 모든 셀이 균등하게 마모되도록 한다. 낸드 플래시 메모리 내 서로 다른 칩의 불량 블록 수는 다양하다. 주어진 칩의 모든 데이터 블록이 마모된 반면, 동일한 장치의 다른 칩은 모든 블록이 여전히 활성 상태일 수 있다. 글로벌 웨어 레벨링은 플래시 메모리의 모든 칩에서 모든 블록을 단일 풀로 함께 관리하여 이 문제를 해결한다.

3. 4. 비교

다음 표는 정적 마모 평준화와 동적 마모 평준화를 비교한 것이다.[3]

항목정적동적
내구도더 긴 수명더 짧은 수명
성능더 느림더 빠름
설계 복잡성더 복잡함덜 복잡함
일반적인 사용솔리드 스테이트 드라이브(SSD),[2] 산업용 플래시 드라이브[12]소비자용 플래시 드라이브


4. 기술적 구현

웨어 레벨링은 하드웨어나 소프트웨어 방식으로 구현할 수 있다.


  • 하드웨어 방식: SD 카드USB 플래시 드라이브처럼 내장된 마이크로컨트롤러를 통해 구현된다.[12] 이 경우 웨어 레벨링은 투명하며, FAT 같은 기존 파일 시스템을 그대로 사용할 수 있다.
  • 소프트웨어 방식: 플래시 미디어의 JFFS2, YAFFS, 광학 미디어의 UDF 같은 특수 파일 시스템에서 구현된다. 이들은 미디어를 원형 로그로 취급하고 순차적으로 쓰기를 하는 로그 구조 파일 시스템이다.[13] 카피-온-라이트 전략을 구현하는 ZFS 같은 파일 시스템도 웨어 레벨링 형태를 구현한다.


EEPROM이나 플래시 메모리는 개별적으로 지울 수 있는 세그먼트로 구성되며, 각 세그먼트는 제한된 횟수의 삭제 주기를 거칠 수 있다. CD-RW, DVD-RW 같은 광학 미디어는 최대 1,000회, DVD-RAM은 100,000회까지 가능하다. 웨어 레벨링은 데이터를 고르게 분산시켜 특정 블록의 조기 실패를 막는다.

FAT, UFS, HFS/HFS+, EXT, NTFS 같은 기존 파일 시스템은 자기 디스크용으로 설계되어 플래시 메모리에는 문제가 될 수 있다.

미디어 수명을 늘리는 기술은 다음과 같다:

  • 각 블록이나 섹터에 체크섬 또는 오류 정정 코드 유지.
  • 오버 프로비저닝된 예비 공간 풀 유지.
  • LFU 대기열에서 블록이나 섹터 추적.
  • 가비지 컬렉션.


2022년, 시라큐스 대학교와 플로리다 국제 대학교 연구진은 웨어 레벨링이 수백 회 정도의 내구성 한계에서는 유용성보다 해가 더 크다는 연구 결과를 발표했다.[14]

4. 1. 하드웨어 방식

SD 카드USB 플래시 드라이브에는[12] 내장된 마이크로컨트롤러를 통해 하드웨어에서 웨어 레벨링 기술이 구현된다. 이러한 장치에서 웨어 레벨링은 투명하며, FAT와 같은 기존 파일 시스템을 그대로 사용할 수 있다.

하드웨어 레벨의 웨어 레벨링은 읽기/쓰기를 수행하려는 메모리 소자(블록)를 CPU 등이 지정할 경우, 해당 주소를 직접 사용하는 것이 아니라 주소 변환 테이블 등을 이용하여 실제로 접근되는 메모리 소자를 간접적으로 지정하는 방식으로 동작한다. 저장 매체에 쓰기를 수행할 때, 이 주소 변환 테이블의 값을 조정함으로써 아직 재기록 횟수가 많지 않은 소자에서 실제 재기록 작업이 발생하도록 한다.

구체적으로 메모리 소자의 각 블록별 갱신 횟수를 장치에서 기록, 관리하고, (예를 들어 파일 시스템의 관리 정보 등) 갱신이 빈번한 블록과 변경 횟수가 적거나 비어있는 블록을 물리적으로 "스왑"한다. 즉, 특정 블록의 갱신 횟수 값이 전체 블록의 상태에서 계산된 값 등 일정 값을 밑돌 경우, 해당 블록의 내용을 비어있는 블록으로 전송하고 이동시킨다(비어있는 블록이 적거나 없는 경우, 변경 횟수가 적은 블록과의 사이에 블록을 전송하고 교체한다). 이와 같이 저장 매체 전체의 변경 횟수를 평준화시키고, 해당 블록을 "스왑"한 후에는 앞서 언급한 주소 변환 테이블을 갱신한다. 이를 통해 소프트웨어에서는 웨어 레벨링 동작을 (적극적으로) 인지하지 않고 읽기/쓰기를 계속할 수 있다.

이러한 방식은 컴팩트 플래시와 같이 메모리 소자에 대한 액세스 제어 회로가 세트로 구성된 상태로 취급되는 경우에 유효하다. 최근에는 NAND형 플래시 메모리를 사용한 저장 매체에서 이 기술을 채택한 제품의 출시가 시작되었다.
참고: 한국의 경우, 삼성전자, SK하이닉스와 같은 주요 반도체 제조업체들이 SSD 컨트롤러에 고도화된 웨어 레벨링 기술을 적용하여 제품의 성능과 수명을 향상시키고 있다.

4. 2. 소프트웨어 방식

웨어 레벨링은 JFFS2, YAFFS, UDF와 같은 특수 파일 시스템에서 소프트웨어로 구현할 수 있다. 이 파일 시스템들은 미디어를 원형 로그로 취급하고 순차적으로 쓰기를 수행하는 로그 구조 파일 시스템이다.[13] 카피-온-라이트 전략을 구현하는 ZFS와 같은 파일 시스템도 웨어 레벨링 형태를 구현한다.

5. 한계 및 비판

2022년, 시라큐스 대학교와 플로리다 국제 대학교 연구진은 현대 SSD 환경에서 웨어 레벨링이 유용성보다 해가 더 클 수 있다는 연구 결과를 발표했다.[14] 이들은 기존 웨어 레벨링 알고리즘이 쓰기 증폭을 유발하며, F2FS나 NVMe에서 새롭게 정의된 Zoned Namespace(ZNS) 등 가변 용량 추상화 방식을 통해 SSD 수명을 더욱 연장할 수 있다고 주장했다.

6. 관련 기술

미디어 수명을 연장하기 위한 몇 가지 기술은 다음과 같다.


  • 각 블록 또는 섹터에 대해 체크섬 또는 오류 정정 코드를 유지하여 오류를 감지하거나 수정할 수 있다.
  • 오버 프로비저닝된 예비 공간 풀을 유지할 수도 있다. 블록 또는 섹터에 오류가 발생하면 해당 풀의 대체 공간으로 향후 읽기 및 쓰기를 리디렉션할 수 있다.
  • 미디어의 블록 또는 섹터는 최소 사용 빈도 (LFU) 대기열에서 추적할 수 있다. 대기열 자체의 데이터 구조는 장치 외부에 저장되거나 사용 공간 자체가 웨어 레벨링되도록 저장되어야 하거나, 플래시 메모리의 경우 수명이 특별히 연장된 블록에 저장되어야 한다. 그러나 일반적인 캐시 알고리즘은 RAM 기반 캐시로 데이터를 관리하도록 설계되었기 때문에 읽기는 일반적으로 쓰기보다 훨씬 빠르며, 지우기 작업은 한 번에 하나의 "블록"만 수행할 수 있는 플래시 메모리 기반 저장 장치에는 직접적으로 적합하지 않다.[13]
  • 가비지 컬렉션


SD 카드USB 플래시 드라이브에서는[12] 내장된 마이크로컨트롤러를 통해 하드웨어에서 기술이 구현된다. 이러한 장치에서 웨어 레벨링은 투명하며, FAT와 같은 기존 파일 시스템을 그대로 사용할 수 있다.

웨어 레벨링은 플래시 미디어의 JFFS2 및 YAFFS 또는 광학 미디어의 UDF와 같은 특수 파일 시스템에서 소프트웨어로 구현할 수도 있다. 이 세 가지는 모두 미디어를 원형 로그로 취급하고 순차적으로 쓰기 때문에 로그 구조 파일 시스템이다. 카피-온-라이트 전략을 구현하는 ZFS와 같은 파일 시스템은 웨어 레벨링 형태도 구현한다.

참조

[1] US특허 Wear leveling techniques for flash memory systems
[2] 웹사이트 Wear Leveling Application Note http://www.eettaiwan[...] Spansion 2010-04-30
[3] 웹사이트 USB Flash Wear-Leveling and Life Span http://www.corsair.c[...] Corsair Gaming 2007-06-00
[4] 웹사이트 Western Digital AV Hard Drive Product Information http://wdc.com/en/pr[...] Western Digital 2010-06-01
[5] 웹사이트 So you wanna buy a SSD? Read this first. https://hardwarecanu[...] 2011-01-10
[6] 웹사이트 SSDs Shifting to 25nm NAND - What You Need to Know | StorageReview.com - Storage Reviews https://www.storager[...] 2019-12-05
[7] 논문 Algorithms and data structures for flash memories 2005
[8] 웹사이트 Optimizing Linux with cheap flash drives https://lwn.net/Arti[...] LWN.net 2011-02-18
[9] 웹사이트 Once upon atime https://lwn.net/Arti[...] LWN.net 2007-08-08
[10] 웹사이트 Wear Leveling https://www.transcen[...] 2019-11-20
[11] 간행물 Wear Leveling – Static, Dynamic and Global https://www.cactus-t[...] 2019-11-20
[12] 웹사이트 Swissbit Industrial SD Memory Cards http://eu.mouser.com[...] Mouser Electronics 2017-04-21
[13] 웹사이트 Why Standard Cache Algorithms Won't Work For SSDs http://www.velobit.c[...] velobit.com 2012-02-25
[14] 웹사이트 Wear Leveling in SSDs Considered Harmful https://dl.acm.org/d[...] 2022-07-07
[15] US특허 Wear leveling techniques for flash memory systems
[16] 웹인용 Wear Leveling Application Note http://www.eettaiwan[...] Spansion 2010-04-30
[17] 웹인용 USB Flash Wear-Leveling and Life Span http://www.corsair.c[...] Corsair Gaming 2007-06-00



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com